package com.xyx.uniplugin_bloodoxygen.interfaces;

public abstract class IDataFilter {
    /**
     * 当前类型的token值
     */
    protected byte tokenValue;
    /**
     * 数据类型
     */
    protected byte dataType;

    /**
     * 构造函数
     * @param tokenValue
     * @param dataType
     */
    protected IDataFilter(byte tokenValue, byte dataType) {
        this.tokenValue = tokenValue;
        this.dataType = dataType;
    }

    /**
     * 是否满足条件
     * @param token token
     * @param dataLen 数据长度
     * @param buffer 数据
     * @return 是否满足
     */
    public boolean isOK(byte token, byte dataLen, byte[] buffer) {
        if(token == this.tokenValue && this.dataType == buffer[0]){
            return true;
        }
        return false;
    }

    /**
     * 接收数据消息
     * @param buffer 数据集合
     */
    public abstract void onMessageReceive(byte[] buffer);
}
